System and method for creating an electronic-calendar entry

ABSTRACT

Methods, systems, and products automatically creates a calendar entry for an electronic calendar application. A graphical user interface is displayed having a text field and a date and time field. Whenever a user wishes to create a calendar entry, the user populates the text field and the date and time field. The user then selects a graphical control that automatically creates the calendar entry in the electronic calendar application.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.10/001,638, filed Oct. 31, 2001, and now issued as U.S. Pat. No.8,370,763, and incorporated herein by reference in its entirety.

NOTICE OF COPYRIGHT PROTECTION

A portion of the disclosure of this patent document and its figurescontain material subject to copyright protection. The copyright ownerhas no objection to the facsimile reproduction by anyone of the patentdocument or the patent disclosure, but otherwise reserves all copyrightswhatsoever.

FIELD OF THE INVENTION

The present invention generally relates to electronic-calendar softwareapplications. The present invention more specifically relates to theautomated creation of electronic-calendar entries based on informationextracted from other applications.

BACKGROUND

The proliferation of the “sticky note” or Post-it® note is well known.Many desktops and computer monitors are practically hidden by the smallyellow note sheets. Like many office products, the sticky note has beenrecreated electronically on the computer.

A variety of applications exist for creating electronic notes on thecomputer desktop. These applications range from full-featuredword-processing applications, such as Microsoft® Word, to note software,such as 3M Company's Post-it® note software. Often these notes, paper orelectronic, contain date-specific information. In some cases, thedate-specific information includes information a user wishes to enterinto a calendar.

Increasingly, individuals store their calendar in an electronic format.Many conventional platforms and applications support electroniccalendaring. Examples include Interact Commerce Corporation's ACT!™ 2000and Microsoft® Outlook. These applications comprise an array offunctions, including the entry of specific events.

Conventionally, creating event entries in an electronic calendarapplication by using information entered in a note-entry application canbe both difficult and time-consuming. Often, the only method fortransferring the data from the note-entry application to the calendarapplication is a manual process.

For example, a supervisor receives a call and begins taking notes in anote-entry application. As a result of a portion of the conversation,the supervisor desires to schedule a meeting involving twentysubordinates. The supervisor attaches the note to an email message andsends the message to the twenty subordinates. To create anelectronic-calendar entry containing the relevant information from thesupervisor, each user must (1) open the note-entry sent by thesupervisor; (2) create a calendar entry on the appropriate date in theirelectronic calendar; and (3) cut and paste the text from the note-entryapplication into the text attribute of the calendar entry.

A supervisor may also simply wish to have an administrative assistantcreate a calendar entry. The supervisor enters the text in a text emailmessage and sends to the message to the administrative assistant. Theadministrative assistant must then manually create an electroniccalendar entry comprising the information.

Manual processes such as this are often error prone. Errors in the datamay result in an event being entered on the wrong date and/or with thewrong textual information. If these errors result in missed appointmentsor deadlines, they may cause a variety of problems, including loss ofrevenue and embarrassment.

But manual entry is not the sole option available to the user forcreating calendar entries in electronic-calendar software. Analternative is to enter the note directly into the calendar applicationon the appropriate date. Also, some conventional note-entry applicationssupport the setting of alarms for a note. Although the alarm does notappear on the user's calendar, the user is able to specify dateinformation for a note.

These conventional approaches to creating calendar entries fromelectronic sticky notes present many disadvantages. These disadvantagesinclude the likelihood of error, the lack of flexibility, andduplication of both time and effort.

Entering date and non-date information directly into a calendarapplication is an approach that is limiting to the user in terms of bothflexibility and practicality. For example, calendar entries inconventional calendar applications include a plurality of text entryfields that a user can use for additional information, such as notes.Conventional calendar applications also include an electronic-notessection that can be categorized and linked to contacts, not to a date.The disadvantage of this approach is that in order to take advantage ofthe text fields in conventional electronic calendar, the user must usethe calendar program whenever the user is taking notes. This may not beconvenient or practical.

Not all notes result in the creation of a calendar entry. Thus, for anynote entered into the calendar portion of a conventional calendarapplication that is not date-related, the user will have to dispose ofor copy the note to another application, resulting in the duplication oftime and effort.

Conventional electronic calendar applications provide variousalternative means for note entry; however, these alternatives also failto satisfy the need for a simple method and system for creating calendarentries from note entries. For example, many conventional calendarapplications include an application for note-entry. Such conventionalnote-entry applications act as on-screen scratchpads, allowing a user toenter a note and then, if necessary, attach the note to a contact.Unfortunately, entries in such conventional note-entry applicationscannot be used to automatically generate a calendar entry; the calendarentry must still be created manually.

Another option for creating calendar entries from electronic notes is touse a separate application to extract information from a note-entryapplication and to create a corresponding calendar entry. Variousapplications exist for performing an analogous procedure to extract andcreate address entries. For example, various applications exist forextracting address information from text files. Conventional versions ofListGrabber and AddressGrabber extract information from a text file,parse the information, and create entries in an electronic address book(ListGrabber and AddressGrabber are produced by eGrabber Inc., aSaratoga, Calif. corporation.). Although these applications are usefulfor creating electronic address entries, they do not address the need ofusers to create electronic-calendar entries.

Another option that a user has in conventional software is to add alarmsto notes within the note-entry application. An alarm causes the computerto emit some type of message to the user. The alarms are analogous toreminders in a conventional calendar application, which emits a visualand/or aural message to remind a user of a particular event orappointment based on user-specified parameters. 3M company's Post-it®Notes software conventionally allows a user to add such alarms to notes.The primary disadvantage of this approach to creating calendar entriesis that the users calendar entries are no longer in a singleapplication, i.e., the user cannot access a single application todetermine all of the events that have occurred or that are scheduled tooccur on a particular date.

A system and method of creating calendar entries based on entries in anote-entry application is needed to minimize errors and to eliminate theduplication of time and effort inherent in conventional approaches.

SUMMARY

Embodiments of the present invention provide systems and methods toaddress the need for automated creation of an electronic-calendar entrybased on information in a separate application, such as a note-entryapplication. An embodiment of the present invention comprises a computersystem. The computer system includes a graphical user interface (GUI).In a preferred embodiment, the GUI occupies no more than twenty-fivepercent of the viewable area of the user's computer display. The GUIcomprises two fields, a free-form text field for entering a note and adate field. The GUI may also comprise a button for activating acalendar-entry creation function.

In one embodiment of the present invention, when the user activates thecalendar-entry creation function, the function automatically creates anentry directly in a calendar store. In another embodiment, thecalendar-entry creation function automatically creates a file, which theuser's calendar application can import.

The software components of the GUI and calendar-entry creation functionmay comprise a single executant or multiple executants working inunison. In one embodiment of the present invention, the GUI comprises anote-entry application, such as 3M company's Post-it® note software, andthe calendar-entry creation function is integrated into the note-entryapplication. In another embodiment, the GUI comprises an HTML pagedisplayed in a web browser window, and the calendar-entry creationfunction comprises a program written in a scripting language, such asJavaScript.

An embodiment of the present invention may also include calendarsoftware. In such an embodiment, the calendar software creates anddisplays the calendar entry. The calendar software may compriseMicrosoft® Outlook, ACT! 2000, or other calendar software application.

An embodiment of the present invention offers numerous advantages overconventional methods of transferring information from a note-entryapplication to an electronic calendar application. Conventionally, inorder to create a calendar entry based on information entered in anote-entry application, a user 1) cuts information from a note-entryapplication, 2) opens a calendar application, 3) creates a calendarentry on the desired day and at the desired time, and 4) pastes thenote-entry information from memory into the calendar entry. Anembodiment of the present invention saves the user time and effort byallowing the user to perform a single mouse click to effectuate the samefour-step process.

A time savings may convert directly to an expense savings for the user'semployer. But even if the expense savings is not direct, time saved byutilizing an embodiment of the present invention provides the user withthe opportunity to perform other tasks, potentially saving or earningthe user's employer additional revenue or reducing expenses.

An embodiment of the present invention also eliminates errors. Any timea user must enter the same information multiple times, the potential forerror exists. If the user has entered the date information correctly inthe note-entry application, the possibility for an error to occur whencreating the calendar entry may be virtually eliminated by an embodimentof the present invention.

Also, although existing applications for extracting information from atext-based application can extract address information and place thatinformation in the user's contact list, these applications do not handledate information. An embodiment of the present invention addresses theneed to extract date information in order to create electronic calendarentries. An embodiment of the present invention is also more flexiblethan existing approaches to creating calendar entries based on anote-entry application.

Further details and advantages of the present invention are set forthbelow

BRIEF DESCRIPTION OF THE FIGURES

These and other features, aspects, and advantages of the presentinvention are better understood when the following Detailed Descriptionis read with reference to the accompanying drawings, wherein:

FIG. 1 is a diagram of an exemplary environment for operation of anembodiment of the present invention.

FIG. 2 is a block diagram illustrating the operation of the varioussoftware components in an embodiment of the present invention.

FIG. 3 is a flowchart illustrating an exemplary method for creating anelectronic-calendar entry in an embodiment of the present invention.

FIGS. 4A and 4B illustrate a representative note entry and calendarapplication in an embodiment of the present invention.

FIG. 5 is a flowchart illustrating additional steps in a method forcreating an electronic-calendar entry in an embodiment of the presentinvention.

DETAILED DESCRIPTION

Embodiments of the present invention provide systems and methods forautomatically creating an electronic-calendar entry from an application,such as a note-entry application. An embodiment of the present inventionincludes a graphical user interface (GUI) and a software component tocreate a calendar entry from controls present in the GUI.

In an embodiment of the present invention, the GUI may occupy a smallportion of the viewable area on a user's screen. The GUI is preferablyvery simple to use and includes only a very limited number of controls.These controls include a control capable of accepting and displaying atext entry and another control capable of accepting and displaying adate entry and minimal additional controls. The software component isactivated from the GUI and is capable of using the text and date entryto automatically create a calendar entry in an electronic calendaringprogram or, alternatively, a calendar entry in a file structured basedon a standardized file format.

FIG. 1 illustrates a computer system for implementing an embodiment ofthe present invention. The computer system in FIG. 1 includes a computer120. Computer 120 shown in FIG. 1 is an IBM-compatible laptop. However,an embodiment of the present invention may comprise a Macintosh, Unixworkstation, Internet appliance, personal digital assistant, or otherdevice capable of displaying a GUI.

The computer 120 shown in FIG. 1 is capable of displaying a windowinterface 105. The window interface 105 in FIG. 1 comprises Microsoft®Windows. An embodiment of the present invention may employ other windowinterfaces, such as the Mac OS or the GNOME desktop environment.

An embodiment of the present invention comprises a note-entryapplication, displaying a note-entry GUI 110. The note-entry GUI 110 isdesigned to occupy a limited percentage of the total screen area of thewindow interface 105. The purpose for limiting the size of thenote-entry GUI 110 is so that it is less intrusive with regard to otheruser interfaces that are displayed concurrently within the windowinterface 105. Just as with paper-based notes, the note-entry GUI 110may be used for a wide variety of purposes, including to record criticalinformation from telephone calls, recording reminders, or recordingother similar information suitable to creation as a brief note.

The note-entry GUI 110 may also be limited in functionality. In anembodiment of the present invention, the note-entry GUI 110 provides theuser of the system with the ability to quickly create notes, and fromthese notes, automatically create electronic calendar entries. In suchan embodiment, as in the embodiment shown, the note-entry GUI 110 ismeant to serve only this limited role, and thus, is limited infunctionality. In other embodiments, the note-entry GUI 110 is notlimited in functionality.

The embodiment shown in FIG. 1 also comprises a calendar-entry creationcomponent 135. The calendar-entry creation component 135 of theembodiment shown comprises a stand-alone program capable ofautomatically creating a calendar entry. In other embodiments, thecalendar-entry creation component 135 comprises a series of components,either stand-alone applications or sub-components of other applications.The calendar-entry creation component extracts information from thenote-entry application's 110 user interface and uses the information tocreate a calendar entry in a calendar application, which may bedisplayed in the calendar GUI 115. The calendar-entry creation componentmay create the calendar entry in response to an action by the user orbased on user-configurable parameters entered by a user prior to noteentry.

In the embodiment shown in FIG. 1, the calendar application 115 executeswithin the same window interface 105 as the note-entry GUI 110. However,an embodiment of the present invention is not limited to working with acalendar application which is capable of displaying a GUI 115 in thesame window interface 105 and may include a web service, remoteautomation component or other similar means. Examples of conventionalcalendar applications include Microsoft® Outlook and Interact CommerceCorporation's ACT!™ 2000

Conventionally, access to networks, including the Internet, is common.Therefore, users are able to store calendaring information in a varietyof locations. Such locations are referred to as calendar stores. Acalendar store comprises a data store for a calendar service. Thecalendar service may comprise multiple calendar stores, and the calendarstore may comprise multiple calendars. For example, a calendar serviceon the Internet may include the calendar stores for many organizations.Each organization's calendar store may include a calendar for each ofthe users within the organization.

In the embodiment of the present invention shown in FIG. 1, the computer120 is attached to a network 125. Network 125 comprises an intranet, butin other embodiments the network may comprise a government network, awide area network, or a public network, such as the Internet. A server130 comprising a calendar store is also connected to the network 125.The note-entry GUI 110 creates a calendar entry in the calendarapplication 115, and the calendar application 115 stores the calendarentry in the user's calendar in the calendar store 130. The computer 120shown in FIG. 1 may also comprise a calendar store for an individualuser's calendar. It may be stored on the computer 120 and backed upacross the network 125 to the calendar store on the network server 130,or the local and remote stores may be synchronized periodically toprovide portability to the user.

An embodiment of the present invention accomplishes tasks via varioussoftware components. FIG. 2 is a block diagram illustratingrelationships between the various software components in an embodimentof the present invention. The software components illustrated in FIG. 2function within the various hardware and user interface componentsillustrated in FIG. 1.

The primary components of the computer 120 are a processor (not shown),memory 205, a chipset (not shown), and some type of non-volatile memory(not shown), such as a hard disk drive. The chipset connects the variouscomponents of the computer 120, including the processor, memory 205,hard disk drive and input/output interfaces. In order to make use of thecomputer 120, an operating system 210 is installed on the computer 120.The operating system executes within the memory 205 of the computer 120.

The operating system 210 commonly includes a window interface 105 asshown in FIG. 1. Software applications, such as the note-entry GUI 110and calendar GUI 115 of the present invention, execute within theoperating system 210. Software applications operating within anoperating system 210 are generally able to share information with othersoftware applications. The sharing may occur through various means,including the sharing of files or through a form of object orientation.

Object-oriented programming allows a first software component to treat asecond software component as a black box. The second software componentexposes attributes to external software programs, including the firstsoftware component. These attributes comprise properties, which arevariables that can be set by external programs, and methods, which arefunctions or algorithms that can be executed by external programs. Oneadvantage of object-oriented programming is that common algorithms maybe created in an object and used by multiple applications; the code isnot duplicated in each application that requires a common functionality.

For example, a math education software application includes routines fordisplaying the calculated area of various geometric shapes, including atriangle, based on inputs from a user. To calculate the area of thetriangle, the application utilizes a triangle object. The triangleobject includes two properties, base and height, and a method,calculateArea. Within the triangle object, the calculateArea methodcontains programming code to calculate the area based on the properties,e.g., area=½ base*height.

In order to determine the area of a triangle, the math educationsoftware application creates an instance of the triangle object, e.g.,dim objTri as new Triangle. The application then sets the base andheight properties based on user entries, e.g., objTri.base=2. Finally,the application sets a variable equal to the calculateArea method, e.g.,Area=objTri.calculateArea. The area of the triangle is now stored in thevariable, Area, and the application can utilize this variable to displaythe result of the calculation. The programmer is not required to createthe code necessary to calculate the area of the triangle. Although thepreceding example is a very simple one, the ability to use objects inthis manner greatly simplifies the task of programming complex tasks.

The Microsoft® Windows family of operating systems provides basicobject-oriented functionality through the use of ActiveX servers. If aprogram is an ActiveX server, other programs can create an instance ofthe ActiveX server, set various properties of the ActiveX server andexecute its methods.

For example, for reasons of efficiency, a software developer wishing toperform linear regression would avoid writing a new program to performthe regression. Linear regression is a common mathematical algorithmimplemented by numerous conventional applications, such as Microsoft®Excel. Microsoft® Excel is also capable of performing as an ActiveXserver.

A developer wishing to perform linear regression writes a softwareapplication, containing programming code to create an instance ofMicrosoft® Excel and execute the linear regression method withinMicrosoft® Excel. The instance of Microsoft® Excel returns the resultsof the linear regression calculation to the developer's application.

An embodiment of the present invention, as illustrated in FIG. 2,implements a related procedure to create calendar entries. Thenote-entry GUI 110 comprises Note and NoteDate fields 215. The userenters values into the Note and NoteDate fields 215 using a keyboard,stylus, or other input device. Within the software code underlying thenote-entry GUI 110 are also various functions, including aCreateCalendarEntry function 220.

A function is a portion of code in a software application that executesin response to some action on the part of the user or some event withinthe program. For example, the note-entry GUI 110 may comprise a buttonlabeled “Create Calendar Entry”, which upon activation executes theCreateCalendarEntry function 220. Activation may occur via mouse click,key sequence, or other means,

Once the user has completed entry in the Note and NoteDate fields 215,the user clicks the “Create Calendar Entry” button, triggering executionof the CreateCalendarEntry function 220 and further, causing a calendarentry to be created based on the values in the note-entry GUI's fields215.

The CreateCalendarEntry function 220 utilizes an object to actuallycreate the calendar entry. The application underlying the calendar GUI115 shown in FIG. 2 may comprise the calendar-entry creation component135 and may be treated as an object. The calendar application 115comprises properties 225 and methods 230, including a BeginDateproperty, a Comment property, and a CreateNew method 230.

When a user using the note-entry GUI 110 indicates that a new calendarentry is to be created, the note-entry GUI 110 executes itsCreateCalendarEntry function 220. The CreateCalendarEntry function 220creates an instance of the calendar application object 115, sets theBeginDate property equal to the value in the NoteDate field, sets theComment property equal to the value in the Note field, and executes theCreateNew method 230 of the calendar object 115.

The CreateNew method 230 contains all of the code necessary to create acalendar entry in the proper form for the user's calendar and to storethe calendar entry in the user's calendar store. Utilizing the calendarapplication 115 as an object allows the developer to include a calendarentry creation function in the note-entry GUI 110 without having torecreate all of the code necessary to create a calendar entry directlyin the calendar store 130, simplifying both initial development andongoing support by limiting the size of the note-entry GUI 110 andunderlying application.

A user's calendar must be stored in some type of non-volatile storagemedium, such as a magnetic disk. In the embodiment shown in FIG. 2, theuser's calendar is stored in calendar database 235 located on a networkcalendar store 130. The calendar database 235 may comprise a proprietarydatabase or may comprise a common relational database. The CreateNewmethod 230 creates a new calendar entry in the calendar database 235across the network 125.

The software illustrated in FIG. 2 may comprise various programminglanguages. For example, all of the components may be written in a singlelanguage, such as Microsoft's Visual Basic or Visual C++. Combinationsof these languages may also be used and combined together as components.Within the Microsoft® Windows family of operating systems, a specialtype of executable may be created that can be utilized in the samememory space as the calling executable. This executable is called adynamic link library (dll). Dynamic link libraries serve a variety ofpurposes and are generally used to provide functionality that may bereused and shared among a plurality of applications.

Other combinations of software components may be utilized as well. Thenote-entry GUI 110 may comprise a markup language page, such ashypertext markup language (HTML). The calendar entry creation component135 in an embodiment of the current invention, utilizing an HTML page,may comprise a program written in a scripting language, such as JavaScript. If properly enabled in the operating environment, a scriptinglanguage is capable of creating an instance of an ActiveX server orother software component and executing its functions or methods asdescribed herein.

FIGS. 1 and 2 illustrate various levels of detail of the computingenvironment in which an embodiment of the present invention operates.FIG. 3 is a flowchart illustrating the process an embodiment of thecurrent invention utilizes within the computing environment. Anembodiment of the present invention advantageously implements theprocess shown in FIGS. 3 and 5 by utilizing a program executed from acomputer-readable medium, such as the random access memory of computer120. The program may be stored on a computer-readable medium such as amagnetic disk, an optical disk, a tape, or a read-only memory (ROM).

Referring again to FIG. 3, the user instructs the computer 120 todisplay the note-entry GUI 110, and the computer 120 receives thecommand 305. The user may so instruct the computer by using a menu, orthe user may click a taskbar tray icon, such as the volume controlpresent in the Microsoft® Windows family of operating systems. In anembodiment of the present invention, the taskbar tray icon resembles aminiature sticky note.

The user then types information into the note-entry GUI 110. Thenote-entry GUI 110 accepts a text entry 310 and a date entry 315.Accepting the entry of the text and date may simply comprise providing asimple text box control. Various other methods are also feasible. Forexample, the text entry control may include spell-checking andformatting capability. The date entry control may include a pictorialrepresentation of a calendar to simplify date entry.

After entering the text and date, the user executes theCreateCalendarEntry function 220, 320. The user may accomplish theexecution by clicking a button on the note-entry GUI 110 user interface,utilizing a menu, pressing a hot-key sequence, or other means ofexecuting or activating an application within the window interface 105.

The CreateCalendarEntry function 220 first creates an instance of thecalendar application 115 as an object 325. Next, the function 220 setsthe BeginDate property of the calendar object equal to the date entry335 and then sets the Comment property equal to the text entry 340.Then, the CreateCalendarEntry function 220 executes the CreateNew method230 of the calendar object 115, causing the calendar object 115 to storethe calendar entry in the calendar store's 130 calendar database 235,340.

FIGS. 4A and 4B are screen shots of the graphical user interface of anembodiment of the present invention. As described above, the note-entryGUI 110 is of limited size and limited function. In the embodiment shownin FIG. 4A, the note-entry GUI 110 comprises a date field 405 and anotes-entry field 410. The user of computer 120 accesses theCreateCalendarEntry function 220, as described in FIGS. 2 and 3, via ahot-key sequence, such as Alt-Ctrl-c. When the hot-key sequence ispressed, the CreateCalendarEntry function 220 creates a calendar entry340.

In the embodiment shown, the resulting calendar entry is displayed in acalendar application 115 as shown in FIG. 4B. FIG. 4B illustrates thecalendar application 115 configured by the user to display the entriesfor a single day, Aug. 24, 2001 415. In the embodiment shown in FIG. 4B,the day on the calendar 415 includes a single entry 425. The entry inthe calendar 115 includes, “Mr. Smith's car repair appointment” as thecomment 425. As expected, this comment is equal to the notes value 410in the note-entry GUI 110 shown in FIG. 4A. Also, the calendar entrybegins at 1:00 p.m. 420. Also as expected, this date and time match thedate entry 405 in the note-entry GUI 110 shown in FIG. 4A.

FIG. 3 illustrates the basic steps necessary to create anelectronic-calendar entry in an embodiment of the present invention. Buta developer may add additional steps to the process to enhance thefunctionality of the application for a user. For example, FIG. 5illustrates another embodiment of a method according to the presentinvention. The method of FIG. 5 includes the steps shown in FIG. 3 aswell as additional steps, which may be incorporated to enhance thecalendar-entry creation process.

In the method shown in FIG. 5, as in FIG. 3, the application firstreceives a command from the user that activates the display of thenote-entry application's 110 graphical user interface (GUI) 305. Next,the user enters a text entry and a date entry, which is received by thecomputer 310, 315. The user causes the GUI to execute the calendar-entrycreation component 135, which in turn executes the CreateCalendarEntryfunction 220, 320.

The process executed by the calendar-entry creation component 135 shownin FIG. 5 then diverges from that shown in FIG. 3. Rather than creatinga calendar entry directly in the calendar store 130, the calendar-entrycreation component 135 displays a preliminary-calendar-entry userinterface comprising a preliminary calendar entry 505. Thepreliminary-calendar-entry user interface provides the user with anopportunity to view and/or modify the preliminary calendar entry beforecreating an entry in the calendar store 130. Displaying a preliminaryentry provides numerous advantages over conventional systems, includingthe ability to verify information used to create the calendar entry.

For example, a user may decide to include only a portion of the text inthe note as the text entry associated with a calendar entry. Also, theuser may decide to schedule the event on a recurring basis. Anembodiment of the present invention may provide capabilities such asthese to the user.

In one embodiment of the present invention, the preliminarycalendar-entry user interface comprises BeginDate and Comment fieldscorresponding to the BeginDate and Comment properties 225, respectively,of the calendar application 115 as described in FIG. 2. Thepreliminary-calendar-entry user interface accepts modification to thesetwo fields 510. The user may decide to change the text, adding ordeleting material appropriate to an event in the calendar.

In addition to accepting modification to the basic fields, the interfacealso accepts an ending date 515 and additional calendar-entry-relatedinformation 520. The additional calendar-entry-related information mayinclude, for example, the recurrence schedule of the event. The endingdate and additional calendar-entry-related information provide the usermore flexibility in creating a calendar entry than available in the morebasic process illustrated in FIG. 3.

Once the modifications 510, ending date 515, and additional information520 have been accepted, the interface continues with the processillustrated in FIG. 3. The CreateCalendarEntry function 220 creates aninstance of the calendar application 115, 325 and sets the BeginDate 330and Comments properties 335 as shown in FIG. 3. The function 220performs the additional step of setting any additional properties thatare available in the preliminary-calendar-entry interface but are notavailable in the Note-entry GUI 110 such as the ending date 525. Oncethe value of any additional properties has been set, the function 220executes the CreateNew method 230 of the calendar application 115 object340, completing the enhanced process.

Many variations of this process may be utilized in an embodiment of thepresent invention. For example, the preliminary calendar entry userinterface illustrated in FIG. 5 may simply provide the user with anopportunity to confirm the calendar entries, rather than allowingchanges and additional information to be entered. Also, when thecalendar entry is created, the CreateCalendarEntry function 220 maydisplay the calendar entry in the calendar application 115 asillustrated in FIG. 4B, in which subsequent modifications may beentered. An advantage to this approach is that the user sees preciselyhow the calendar entry 425 will appear in the calendar application 115.

Although the examples above describe creation of a calendar entrydirectly through the use of the calendar application, many other meansfor creating a calendar entry in an embodiment of the present inventionmay be utilized. For example, in one embodiment of the present inventiona file is created for import into the calendar store.

Conventional electronic calendar applications are capable of importingmany different types of files, including, for example, a file in thevCalendar or more recent iCalendar formats. vCalendar is aspecification, describing both a transport and a format for exchangingcalendar information in an easy, automated, and consistent manner. Anumber of companies, including Apple, IBM and AT&T, formed the versitConsortium. The object of the consortium was the development ofstandards for the interoperability of products from multiple vendors.vCalendar was one of the resulting standards. When the versit Consortiumdisbanded in 1996, they ceded control of the vCalendar specification tothe Internet Mail Consortium.

Since that time, various Internet standards for the exchange of calendarinformation have been developed. For example, RFC 2445 is the iCalendarstandard. It is a language used to describe calendar objects and isanalogous to RFC 822, the language used to describe email messages.iCalendar provides the format for calendar information which can be usedin various contexts, including sending calendar information over anetwork, drag and drop within a window interface, and import/export.

An embodiment of the present invention creates a file as an iCalendarobject. Due to the widespread acceptance of the standard, conventionalcalendar applications are able to import the newly-created iCalendarobject. The following is an example of an iCalendar object for the eventillustrated in FIGS. 4A and 4B:

BEGIN:VCALENDAR

PRODID:-//xyz Corp//NONSGML PDA Calendar Version 1.0//

EN VERSION:2.0 BEGIN:VEVENT

DTSTAMP:20010821T120000Z

UID:uid1@host.com ORGANIZER:MAILTO:jsmith@host.com

DTSTART:20010824T130000Z

STATUS:CONFIRMED

DESCRIPTION:Mr. Smith's car repair appointment

END:VEVENT

END:VCALENDAR

The foregoing description of the preferred embodiments of the inventionhas been presented only for the purpose of illustration and descriptionand is not intended to be exhaustive or to limit the invention to theprecise forms disclosed. Numerous modifications and adaptations thereofwill be apparent to those skilled in the art without departing from thespirit and scope of the present invention.

The invention claimed is:
 1. A method, comprising: generating, by aprocessor executing an electronic calendar application, an electroniccalendar for display in a graphical window; receiving, by the processor,a command entered by a user requesting an electronic note; executing, bythe processor, a note entry software application in response to thecommand, the note entry software application separate from theelectronic calendar application; generating, by the processor executingthe note entry software application, a note entry user interface inanother graphical window, the note entry user interface comprising atext field, a date field, and a graphical control; receiving, by theprocessor, a window selection from the user that selects the anothergraphical window generated by the note entry software application;receiving text typed by the user into the text field; receiving, by theprocessor, entry of a date and time typed by the user into the datefield; receiving, by the processor, a control selection of the graphicalcontrol; setting, in memory, a comment property equal to the text typedinto the text field of the another graphical window generated by thenote entry software application; setting, by the processor, a begindateproperty equal to the date and time in the date field of the anothergraphical window generated by the note entry software application;executing, by the processor, object-oriented programming that creates acalendar entry in the electronic calendar generated by the electroniccalendar application from the comment property and the begindateproperty; and storing, in the memory, the calendar entry associated withthe date and time in response to the control selection of the graphicalcontrol.
 2. The method of claim 1, further comprising storing thecalendar entry in a calendar store.
 3. The method of claim 1, furthercomprising storing the calendar entry as a file in the memory.
 4. Themethod of claim 1, further comprising storing the note entry userinterface as a web page.
 5. The method of claim 1, further comprisingextracting the date and time from the text typed by the user into thetext field.
 6. The method of claim 1, further comprising spell checkingthe text typed by the user into the text field.
 7. The method of claim1, further comprising displaying the calendar entry.
 8. A systemcomprising: a processor; and a memory storing a software applicationthat when executed causes the processor to perform operations, theoperations comprising: displaying an electronic calendar in a graphicalwindow generated by an electronic calendar application; receiving acommand entered by a user requesting an electronic note; executing anote entry software application in response to the command, the noteentry software application separate from the electronic calendarapplication; generating a note entry user interface in another graphicalwindow, the note entry user interface comprising a text field, a datefield, and a graphical control; receiving a window selection from theuser that selects the another graphical window generated by the noteentry software application; receiving text typed by the user into thetext field; receiving entry of a date and time typed by the user intothe date field; receiving a control selection of the graphical control;setting a comment property equal to the text typed into the text fieldof the another graphical window generated by the note entry softwareapplication; setting a begindate property equal to the date and time inthe date field of the another graphical window generated by the noteentry software application; executing object-oriented programming thatcreates a calendar entry in the electronic calendar from the commentproperty and the begindate property; and storing the calendar entryassociated with the date and time in response to the control selectionof the graphical control.
 9. The system of claim 8, wherein theoperations further comprise storing the calendar entry in a calendarstore.
 10. The system of claim 8, wherein the operations furthercomprise storing the calendar entry as a file.
 11. The system of claim8, wherein the operations further comprise storing the note entry userinterface as a web page.
 12. The system of claim 8, wherein theoperations further comprise extracting the date and time from the texttyped into the text field of the another graphical window generated bythe note entry software application.
 13. The system of claim 8, whereinthe operations further comprise spell checking the text typed into thetext field of the another graphical window generated by the note entrysoftware application.
 14. The system of claim 8, wherein the operationsfurther comprise displaying the calendar entry.
 15. A non-transitorycomputer readable medium storing code that when executed causes aprocessor to perform operations, the operations comprising: displayingan electronic calendar in a graphical window generated by an electroniccalendar application; receiving a command entered by a user requestingan electronic note; executing a note entry software application inresponse to the command, the note entry software application separatefrom the electronic calendar application; generating a note entry userinterface in another graphical window, the note entry user interfacecomprising a text field, a date field, and a graphical control;receiving a window selection from the user that selects the anothergraphical window generated by the note entry software application;receiving text typed by the user into the text field; receiving entry ofa date and time typed by the user into the date field; receiving acontrol selection of the graphical control; setting a comment propertyequal to the text typed into the text field of the another graphicalwindow generated by the note entry software application; setting abegindate property equal to the date and time in the date field of theanother graphical window generated by the note entry softwareapplication; executing object-oriented programming that creates acalendar entry in the electronic calendar from the comment property andthe begindate property; and storing the calendar entry associated withthe date and time in response to the control selection of the graphicalcontrol.
 16. The non-transitory computer readable medium of claim 15,wherein the operations further comprise storing the calendar entry in acalendar store.
 17. The non-transitory computer readable medium of claim15, wherein the operations further comprise storing the calendar entryas a file.
 18. The non-transitory computer readable medium of claim 15,wherein the operations further comprise storing the note entry userinterface as a web page.
 19. The non-transitory computer readable mediumof claim 15, wherein the operations further comprise extracting the dateand time from the text typed by the user into the date field.
 20. Thenon-transitory computer readable medium of claim 15, wherein theoperations further comprise spell checking the text typed into the textfield.